package com.example.demo.dto;

import java.time.LocalDateTime;
import java.util.Map;

/**
 * 任务详细信息DTO
 * 包含任务基本信息和经过displayFields过滤的数据详情
 */
public class TaskDetailDTO {
    // 任务基本信息
    private Long id;                     // 任务ID
    private String bizUniqueId;          // 业务唯一ID
    private Long dataSourceId;           // 数据源ID
    private String dataSourceName;       // 数据源名称
    private Integer isAssigned;          // 是否已分配
    private String isAssignedText;       // 分配状态文本
    private LocalDateTime createdAt;     // 创建时间
    private LocalDateTime updatedAt;     // 更新时间
    
    // 详细数据信息（根据displayFields过滤）
    private Map<String, Object> taskData;      // 任务数据（来自rawData）
    private Map<String, Object> extraData;     // 额外数据（来自extraFields）
    private Map<String, Object> displayData;   // 最终展示数据（合并后按displayFields过滤）
    
    // getter and setter methods
    public Long getId() {
        return id;
    }
    
    public void setId(Long id) {
        this.id = id;
    }
    
    public String getBizUniqueId() {
        return bizUniqueId;
    }
    
    public void setBizUniqueId(String bizUniqueId) {
        this.bizUniqueId = bizUniqueId;
    }
    
    public Long getDataSourceId() {
        return dataSourceId;
    }
    
    public void setDataSourceId(Long dataSourceId) {
        this.dataSourceId = dataSourceId;
    }
    
    public String getDataSourceName() {
        return dataSourceName;
    }
    
    public void setDataSourceName(String dataSourceName) {
        this.dataSourceName = dataSourceName;
    }
    
    public Integer getIsAssigned() {
        return isAssigned;
    }
    
    public void setIsAssigned(Integer isAssigned) {
        this.isAssigned = isAssigned;
    }
    
    public String getIsAssignedText() {
        return isAssignedText;
    }
    
    public void setIsAssignedText(String isAssignedText) {
        this.isAssignedText = isAssignedText;
    }
    
    public LocalDateTime getCreatedAt() {
        return createdAt;
    }
    
    public void setCreatedAt(LocalDateTime createdAt) {
        this.createdAt = createdAt;
    }
    
    public LocalDateTime getUpdatedAt() {
        return updatedAt;
    }
    
    public void setUpdatedAt(LocalDateTime updatedAt) {
        this.updatedAt = updatedAt;
    }
    
    public Map<String, Object> getTaskData() {
        return taskData;
    }
    
    public void setTaskData(Map<String, Object> taskData) {
        this.taskData = taskData;
    }
    
    public Map<String, Object> getExtraData() {
        return extraData;
    }
    
    public void setExtraData(Map<String, Object> extraData) {
        this.extraData = extraData;
    }
    
    public Map<String, Object> getDisplayData() {
        return displayData;
    }
    
    public void setDisplayData(Map<String, Object> displayData) {
        this.displayData = displayData;
    }
}